package com.gis.maps;

import java.util.HashMap;
import java.util.Map;

public class commonMap {
    private static final Map<String, String> seasonMap = new HashMap<>();
    private static final Map<String, String> typeMap = new HashMap<>();
    private static final Map<String, String> paramMap = new HashMap<>();
    private static final Map<String, String> modelMap = new HashMap<>();
    private static final Map<String, String> paramModelMap = new HashMap<>();
    /**
     * 判断赤潮需要使用的参数 与dto一致
     */
    private static final String[] redtideParams = {"dissolvedOxygen", "ph"};
    private static final String[] oilspillParams = {"petroleumClass"};

    static {
        // 季节映射
        seasonMap.put("春季","spring");
        seasonMap.put("夏季","summer");
        seasonMap.put("秋季","fall");
        seasonMap.put("冬季","winter");
        // 参数类型映射
        typeMap.put("水质", "waterQuality");
        typeMap.put("沉积物", "sediment");
        typeMap.put("生物质量", "biology");
        // 参数映射
        paramMap.put("盐度", "psu");
        paramMap.put("温度", "temp");
        paramMap.put("PH", "ph");
        paramMap.put("溶解氧", "dissolvedOxygen");
        paramMap.put("悬浮物", "seston");
        paramMap.put("需氧量", "cod");
        paramMap.put("硝酸盐", "no3");
        paramMap.put("亚硝酸盐", "no2");
        paramMap.put("氨氮", "nh3");
        paramMap.put("磷酸盐", "po4");
        paramMap.put("氮", "n");
        paramMap.put("叶绿素a", "chla");
        paramMap.put("石油类", "petroleumClass");
        paramMap.put("硫化物", "sulfide");
        paramMap.put("挥发酚", "voc");
        paramMap.put("铜", "copper");
        paramMap.put("锌", "zinc");
        paramMap.put("铅", "lead");
        paramMap.put("镉", "cadmium");
        paramMap.put("汞", "mercury");
        paramMap.put("砷", "arsenic");
        paramMap.put("铬", "chromium");
        paramMap.put("α-666", "alpha666");
        paramMap.put("β-666", "beta666");
        paramMap.put("γ-666", "gama666");
        paramMap.put("δ-666", "delta666");
        paramMap.put("滴滴涕p'p-DDE", "ppdde");
        paramMap.put("滴滴涕p'p-DDD", "ppddd");
        paramMap.put("滴滴涕o'p-DDT", "opddt");
        paramMap.put("滴滴涕p'p-DDT", "ppddt");
        paramMap.put("多环芳烃-苊", "pahacl");
        paramMap.put("多环芳烃-苊烯", "pahac");
        paramMap.put("多环芳烃-苯并芘", "pahan");
        paramMap.put("多环芳烃-苯并(a)蒽", "pahbaa");
        paramMap.put("多环芳烃-苯并(e)芘", "pahbep");
        paramMap.put("多环芳烃-苯并(b)荧蒽", "pahbbfa");
        paramMap.put("多环芳烃-苯并(g,h,i)苝", "pahbghip");
        paramMap.put("多环芳烃-苯并(k)荧蒽", "pahbkfa");
        paramMap.put("多环芳烃-䓛", "pahchr");
        paramMap.put("多环芳烃-二苯并(a, h)e蒽", "pahdbaha");
        paramMap.put("多环芳烃-荧蒽", "pahfa");
        paramMap.put("多环芳烃-芴", "pahfl");
        paramMap.put("多环芳烃-茚并(1, 2, 3-cd)芘", "pahip");
        paramMap.put("多环芳烃-萘", "pahna");
        paramMap.put("多环芳烃-菲", "pahphe");
        paramMap.put("多环芳烃-芘", "pahpy");
        paramMap.put("PCB-28", "pcb28");
        paramMap.put("PCB-52", "pcb52");
        paramMap.put("PCB-101", "pcb101");
        paramMap.put("PCB-81", "pcb81");
        paramMap.put("PCB-123", "pcb123");
        paramMap.put("PCB-118", "pcb118");
        paramMap.put("PCB-114", "pcb114");
        paramMap.put("PCB-153", "pcb153");
        paramMap.put("PCB-105", "pcb105");
        paramMap.put("PCB-138", "pcb138");
        paramMap.put("PCB-126", "pcb126");
        paramMap.put("PCB-167", "pcb167");
        paramMap.put("PCB-156", "pcb156");
        paramMap.put("PCB-157", "pcb157");
        paramMap.put("PCB-180", "pcb180");
        paramMap.put("PCB-169", "pcb169");
        paramMap.put("PCB-189", "pcb189");
        // 沉积物
        paramMap.put("总石油烃", "oc");
        paramMap.put("砾", "gravel");
        paramMap.put("砂", "sand");
        paramMap.put("粉砂", "pinksand");
        paramMap.put("粘土", "clay");
        // 生物质量
        paramMap.put("石油烃", "tph");
        // 模型映射
        modelMap.put("线性回归", "Linear");
        modelMap.put("多层感知机", "MLP");
        modelMap.put("多项式回归", "PolyLinear");
        modelMap.put("序列到序列", "Seq2Seq");
        modelMap.put("长短期网络", "LSTM");
        // 参数-模型映射
        paramModelMap.put("dissolvedOxygen", "Seq2Seq");
        paramModelMap.put("ph", "Seq2Seq");
    }

    public static String getSeason(String key) {
        return seasonMap.get(key);
    }
    public static String getType(String key) {
        return typeMap.get(key);
    }
    public static String getParam(String key) {
        return paramMap.get(key);
    }
    public static String getModel(String key) {
        return modelMap.get(key);
    }
    public static String getParamModel(String key) {
        return paramModelMap.get(key);
    }
    public static String[] getRedtideParam() {
        return redtideParams;
    }
    public static String[] getOilspillParam() {
        return oilspillParams;
    }
}
